home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Atari Compendium
/
The Atari Compendium (Toad Computers) (1994).iso
/
files
/
umich
/
ste
/
stedemo.lzh
/
MLOADSTE.S
< prev
next >
Wrap
Text File
|
1990-07-06
|
5KB
|
192 lines
***************************************************************
*Tama on aanisamplerin parannettu lukuohjelmisto
* Ladataan äänitiedosto ja tulostetaan sitä STE-mallilla
* 30.01.90 Juha Valtanen
***************************************************************
gia equ $ffff8802 aanipiiri
mfp equ $fffa01
dmactr equ $ff8900 päällä/pois
dma1 equ $ff8903 puskurin alkuosoite
dma2 equ $ff8905
dma3 equ $ff8907
len1 equ $ff890f puskurin loppuosoite
len2 equ $ff8911
len3 equ $ff8913
smod equ $ff8920 mode toistolle
mwmask equ $ff8922
mwdata equ $ff8924
cr equ $0d
lf equ $0a
**********************************************************
* tasta alkaa paaohjelma
main move.l sp,a5 pointteri talteen
lea pino,sp uusi pino
move.w #20,-(sp) kursori piiloon
move.w #0,-(sp) ei kursoria
move.w #21,-(sp)
trap #14
addq.l #6,sp
clr.l -(sp) super tilaan
move.w #$20,-(sp)
trap #1
lea 6(sp),sp
move.l d0,s_save entinen super pino talteen
move.l 4(a5),a5 kantasivun osoite
move.l a5,d0
move.l 8(a5),d0 koodin pituus
add.l #$100,d0 ja hieman lisaa
move.l d0,-(sp) vapautetaan tila
move.l a5,-(sp) kantasivusta lahtien
move.w #0,-(sp)
move.w #$4a,-(sp) kutsu setblock
trap #1
lea 12(sp),sp
move.l #-1,-(sp) haetaan vapaan muistin maara
move.w #$48,-(sp)
trap #1
lea 6(sp),sp
move.l d0,memfree vapaan muistin määrä
main2 move.l memfree,d0 varataan talletustila
move.l d0,-(sp) varataan tilaa max
move.w #$48,-(sp)
trap #1
addq.l #6,sp
move.l d0,aktiivi talletusblokin alkuosoite
move.l memfree,aklen talletus blokin max pituus
mloop bsr load haetaan data muistiin
move.l aktiivi,a0
move.l aklen,d0
mm1 move.b (a0),d1
add.b #$80,d1
move.b d1,(a0)+
subq.l #1,d0
bne mm1
move.l aktiivi,d0 puskurin alkukohta
and.l #$fffffffe,d0 parillinen osoite
move.b d0,dma3
lsr.l #8,d0
move.b d0,dma2
lsr.l #8,d0
move.b d0,dma1
move.l aktiivi,d0 puskurin loppuosoite
add.l aklen,d0
and.l #$fffffffe,d0 parillinen osoite
move.b d0,len3
lsr.l #8,d0
move.b d0,len2
lsr.l #8,d0
move.b d0,len1
move.w #%0000000010000001,smod
move.w #$7ff,mwmask
move.w #%01010001100,mwdata
move.w #3,dmactr ääni päälle ja toistoa.
loop bra loop
**********************************************************************
* load lataa tiedoston levyltä
load move.w #$02,-(sp) avataan tiedosto
pea name
move.w #$3d,-(sp)
trap #1
lea 8(sp),sp
move.w d0,handle
move.l aktiivi,-(sp) alkuosoite
move.l aklen,-(sp) maksimipituus
move.w handle,-(sp)
move.w #$3f,-(sp)
trap #1
lea 12(sp),sp
move.l d0,aklen oikea pituus
move.w handle,-(sp) suljetaan tiedosto
move.w #$3e,-(sp)
trap #1
lea 4(sp),sp
rts
name dc.b '*.snd',0
even
****************************************************************
* ginit alustaa PCM piirin
ginit lea gia,a0 pointteri aanipiiriin
lea $fffffa01,a1
lea $fffffc00,a6 nappaimisto acian osoite
move.l #5,d0 'puhdistataan' aanipiiri
ginit2 move.b d0,-2(a0) valitaan rekisteri
move.b #0,(a0) nollataan se
dbra d0,ginit2
move.b #7,-2(a0) mikseri-rekistri
move.b -2(a0),d0
or.b #%00111111,d0 ei aania
move.b d0,(a0)
rts
*******************************************************************
text movem.l d0/a0,-(sp)
move.l a0,-(sp)
move.w #9,-(sp)
trap #1
lea 6(sp),sp
movem.l (sp)+,d0/a0
rts
even
s_save ds.l 1
srsave ds.l 1
memfree ds.l 1 vapaan muistin maara
aktiivi ds.l 3 talletuksen osoite, max pituus, pituus
aklen ds.l 1
linea ds.l 1 taulukkopointteri
handle ds.l 1
sss ds.l 100
pino ds.l 1
end